In a traditional network environment, there are end stations and intermediate stations. Each end station can be thought of as a Network Interface Card (NIC) or network adapter. An end station may be either the originator of a network packet or the final destination of a network packet. The intermediate stations, on the other hand, can be thought of as switches, hubs, routers, repeaters, or the like that are disposed between the end stations to aid them in the delivery of their network packets.
Raw data cannot be sent between two end stations in a network environment since the raw data does not include the information required to get it to the destination. Framing is used to provide such information and to divide the raw data into data packets for the network transmission. As used herein, framing refers to the addition of meta data around the raw data that provides the intermediate stations with information on how to send the packets and provides the destination end station with information on what each packet contains. Framing can be performed many times on a packet and normally occurs once for each OSI level the packet must traverse. Examples of typical framing include TCP/UDP, IP, and Ethernet. As known to those skilled in the art, the framing also might include consistency checks to guarantee the integrity of the packet.
Thus, in traditional network environments, end stations create, send, and receive packets while the intermediate stations either route or forward the packets between end stations or other intermediate stations. In this environment, all stations receive and send fully framed network packets consisting of, at a minimum, routing information and data.
The problem with the traditional network environment is that the framing of network packets has become increasing costly in CPU processing time as the network throughput has gone up. This has been addressed, in part, by providing end stations with the hardware capacity to frame a packet without the CPU cost by offloading the packet framing to hardware. For example, a TCP/IP offload engine (TOE) is a new hardware standard that allows a NIC to perform the framing of a TCP/IP packet in hardware. This technology greatly decreases the amount of CPU processing time required to send and receive network packets. As an example, Virtual PC 2004 and Virtual Server 2005 by Microsoft Corporation frame the network packet before it is sent to the host. Unfortunately, even if the host has a network card capable of framing the packet in hardware, such as TOE, it is not used for the guest's traffic, which continues to be framed in software, costing CPU processing time.
A typical network has a tree topology. The leaves of the tree are the end stations and the branches and the root are the intermediate stations. In a smart (switched) network, the packet flows up the tree through the intermediate stations only as far as necessary to get to the intermediate station that has a lower connection to the destination end station. For example, FIG. 1 illustrates a network topology in which end stations D and E are connected to intermediate station B and end stations F and G are connected to intermediate station C. Intermediate stations B and C are connected to intermediate station A. Thus, to send a packet from end station D to end station G, the packet will travel through intermediate stations A, B, and C. In order to propagate information through the system of FIG. 1, an external protocol must be used to frame the network packets such that all connected network stations can understand the packet. In the example of FIG. 1, the network packets would need to be understood by intermediate stations A, B, and C and sufficient meta data would need to be wrapped around the raw data in the network packets for this purpose. This leads to significant overhead, particularly as the number of intermediate stations increases.
The maximum transmission unit (MTU) specifies the maximum amount of data that can be sent in a single packet (after framing). Typically, Ethernet supports an MTU of 1500 bytes; however, recent Ethernet standards such as gigabit Ethernet have increased the MTU to 9000 bytes. These larger packets are referred to as jumbo frames. The MTU of a local area network (LAN) is generally computed by sending packets of different sizes and seeing which ones timeout or return an error. The MTU of the LAN will then be the largest packet that do not return an error. A LAN with a large MTU will generally have higher performance because large packets will not have to be fragmented. A LAN with a small MTU, on the other hand, will generally require less configuration because it more likely that all of the intermediate stations on the LAN will be able to support the smaller MTU.
Traditional networks are limited by the aggregate bandwidth lost due to the network's tree structure. In other words, while the tree topology is cost effective in terms of hardware and configurability, it is wasteful in terms of bandwidth since the aggregate bandwidth is wasted when packets must travel between intermediate stations with relatively small MTUs. In the above example, when end station D in FIG. 1 must send a packet to end station G, the LAN bandwidth of intermediate stations A, B, and C must be consumed, thereby limiting the aggregate bandwidth.
A solution to these problems is desired that minimizes the amount of framing and offloads the framing to hardware where possible. A solution is also desired that maximizes the network MTU. The invention provides such solutions.